Asic设计学习总结 |
您所在的位置:网站首页 › vcs xa仿真 › Asic设计学习总结 |
Asic设计学习总结-数模混合仿真
热度 1已有 11638 次阅读| 2018-3-7 20:12 |系统分类:芯片设计 一、前言 每一个Asic芯片项目都是由模拟电路和数字电路组合而成,前面的章节讨论的都是数字电路的仿真和综合,在本章节将会讨论数模混合仿真的问题。本章节讨论的数模混合仿真,仍然是基于前面章节所使用到的UART的RTL代码。然而,由于本人对于模拟电路不是很熟悉,不能自行设计复位及振荡电路。因此,本章节的示例无法在工具软件中进行实际运行,但会把除了模拟网表之外的各类必备文件都交代清楚。说到数模混合仿真,原本cadence IC5141也具备这个功能,网络上也有相应的教程,但问题在于其仿真速度太慢,而且还有各种限制,这导致基于IC5141的数模混合仿真一点都不实用。 二、工具 数模混合仿真的工具很多,VCS+NANOSIM是常用的一对组合。后期NANOSIM升级为了XA,仿真流程没有变化,但是各项配置文件参数有相应的改变。 推荐文档,http://bbs.eetop.cn/thread-556128-1-1.html,该文档介绍了更多的nanosim可以选择的命令。也给出了一个示例,该示例是通过修改官方示例所得。 三、示例 基于VCS+NANOSIM仿真的流程总共分为两类,一个是基于模拟网表为顶层的所谓spice_top流程,另外一个是基于Testbench为顶层verilog_top流程,本章节是基于Testbench为顶层verilog_top流程。 所需文件a,Testbench,b,全部UART的RTL代码,c,vcsAD.init,d,cfg模拟配置文件,e,模拟电路网表,f,makefile启动脚本。所有文件见附件,除了模拟电路网表文件内容不全以外,其余文件内容均齐全(可能还需要修改)。文件结构图如下图,
仿真流程:准备好所需文件,注意文件的依赖关系及路径,在终端运行makefile启动文件即可。 另外有一个官方自带的仿真示例可以参考,路径在安装好的nanosim软件的路径下面:/home5/EDATools/synopsys/ns/E-2010.12/doc/ns/tutorials/nanosim/NS-VCS 官方示例中的run启动文件经过适当修改之后可以运行。
四、附件 Testbench:红色部分为相对原testbench修改的部分,针对模拟电路给的不同的rst_b复位时间长度,还需要修改“b,激励信号“的延迟时间才能运行。 `timescale 1ns/1ns
module tb;
parameter num = 500; reg [7 : 0] Data_Bus; reg Load_XMT_datareg; reg Byte_ready; reg T_byte; reg read_not_ready_in;
//reg Clock; //reg rst_b; //reg Sample_clk; wire Clock; wire rst_b; wire Sample_clk;
wire serial; wire Error1,Error2; wire [7:0] RCV_datareg; wire read_not_ready_out; //a,时钟和复位部分 /* initial begin rst_b = 1; Sample_clk = 0; Clock = 0; #100; rst_b = 0; #100; rst_b = 1; end
always #(8*num) Clock = ~Clock; always #num Sample_clk = ~Sample_clk; */ //b,激励产生部分 initial begin Data_Bus = 8'b1110_0101; Load_XMT_datareg = 1'b1; Byte_ready = 1'b0; T_byte = 1'b0;
read_not_ready_in = 1'b0; // #(2*8*num); Load_XMT_datareg = 1'b0; #(2*8*num); Byte_ready = 1'b1; #(2*8*num); T_byte = 1'b1; // #(2*8*num) Load_XMT_datareg = 1'b1; Byte_ready = 1'b0; T_byte = 1'b0;
end //c,系统监视器 //d,结果比较电路 //e,波形产生函数 //vpd /* initial begin $vcdplusfile("wave.vpd"); $vcdpluson(1,tb); end */ //fsdb initial begin $fsdbDumpfile("wave.fsdb"); $fsdbDumpvars(0,tb); end
//g,控制仿真时间 initial begin #1000_000; $finish; end //f,待验证的MODULE //将模拟电路模块示例化,模拟电路与数字电路的接口部分只需要一个复位//信号和两个时钟信号,Sample_clk频率为Clock频率的8倍,具体缘由请查//书籍《Verilog HDL高级数字设计》 analog analog( .Clock(clock) .Sample_clk(Sample_clk) .rst_b(rst_b)); UART_XMTR m0( .Serial_out(serial),
.Data_Bus(Data_Bus), .Load_XMT_datareg(Load_XMT_datareg), .Byte_ready(Byte_ready), .T_byte(T_byte), .Clock(Clock), .rst_b(rst_b) ); UART_RCVR m1(
.RCV_datareg(RCV_datareg), .read_not_ready_out(read_not_ready_out), .Error1(Error1), .Error2(Error2),
.Serial_in(serial), .read_not_ready_in(read_not_ready_in), .Sample_clk(Sample_clk), .rst_b(rst_b) ); endmodule
全部UART的RTL代码见前文。 vcsAD.init: use_spice -cell analog;//调用模拟网表中的顶层单元analog choose nanosim -n analog.spi -C cfg ;//选择仿真的模拟hspice网表analog.spi及模拟仿真配置文件cfg。 bus_format _%d;//设置模拟网表总线表示格式 rmap_file resis_map; analog.spi:在进行混合仿真前,确保analog.spi可以使用nanosim进行仿真,以排除模拟网表的问题,很多问题的产生都源于模拟网表没有修改好。如何用nanosim仿真模拟网表?简单的直接用启动命令:nanosim -n analog.spi -C cfg,如何查看波形?观察cfg文件中是设置的fsdb还是vpd。再决定启动verdi还是dve。 .inc .global vdd gnd //设定全局电源地 vse vdd gnd vpwl 0 0 5n 5v 1m 5v //添加模拟电源激励 .tran 15n 1m //控制仿真时间为1ms,仿真步进为15ns. .end//结束标志 cfg: print_node_v * //打印所有节点电压 print_node_i * //打印所有节点电流 print_node_logic * //打印所有节点逻辑信号 set_print_format for=fsdb //设定打印格式,有fsdb和vpd两种可选,分别对应verdi和dve两种波形查看器的格式 makefile: all:VCS VERDI
VCS: +ad参数即为调用nanosim进行联合仿真 vcs +v2k +ad=vcsAD.ini -sverilog -debug_all -P /usr/synopsys/Verdi/K-2015.09/share/PLI/VCS/LINUX64/novas.tab /usr/synopsys/Verdi/K-2015.09/share/PLI/VCS/LINUX64/pli.a +vcs+lic+wait -f uart.f -y ./ +libext+.v -full64 -R VERDI: verdi -f uart.f -ssf wave.fsdb & uart.f: /home/Lance/synopsys/uart/nanosim/src/testbench.v /home/Lance/synopsys/uart/nanosim/src/UART_XMTR.v /home/Lance/synopsys/uart/nanosim/src/Control_Unit.v /home/Lance/synopsys/uart/nanosim/src/Datapath_Unit.v /home/Lance/synopsys/uart/nanosim/src/UART_RCVR.v /home/Lance/synopsys/uart/nanosim/src/Control_Unit2.v /home/Lance/synopsys/uart/nanosim/src/Datapath_Unit2.v ![]() ![]() wuchangchun866 收藏 分享邀请 举报 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |